import { TileLayer } from './tileLayer'

/**
 * 此类表示一种地图类型，您可以通过实例化此类自定义地图类型
 */
export interface MapType {
    /**
     * 创建 `TMapType` 对象实例
     *
     * @param layers `TileLayer` 图层对象数组
     *
     * @param name 地图类型名称
     */
    new(layers: Array<TileLayer>, name: string): MapType;

    /**
     * 返回地图类型名称
     */
    getName: () => string;

    /**
     * 返回地图类型对应的图层
     */
    getLayers: () => Array<TileLayer>
}
